package org.come.control;

import org.come.Frame.NPCJfram;
import org.come.Frame.ZhuFrame;
import org.come.Jpanel.FrameMessageChangeJpanel;
import org.come.action.NpcMenuAction;
import org.come.socket.Agreement;
import org.come.socket.SendMessageUntil;
import org.come.until.Util;

import com.tool.image.ImageMixDeal;
import com.tool.image.ManimgAttribute;
import com.tool.role.RoleData;

/**
 * 月老npc
 * 
 * @author 黄建彬
 * 
 */
public class MarryInfromantsControl implements NpcMenuAction {

	@Override
	public void menuControl(String type) {
		if ("我要结婚".equals(type)) {
			// 结婚
			marryWith();
		} else if ("我要离婚".equals(type)) {
			// 离婚
			UnMarry();
		}
	}

	/**
	 * 我要结婚
	 */
	public void marryWith() {
		String[] vs=ImageMixDeal.userimg.getRoleShow().getTeam().split("\\|");
		if (vs.length!=2) {
			ZhuFrame.getZhuJpanel().addPrompt2("2人组成队伍前来结婚");
			return;
		}else if (vs[0].equals(ImageMixDeal.userimg.getRoleShow().getRolename())) {
	        ManimgAttribute attribute=ImageMixDeal.Playerimgmap.get(vs[1]);	
	        if (attribute!=null) {
	        	if (Util.getSex(attribute.getRoleShow().getSpecies_id())==Util.getSex(ImageMixDeal.userimg.getRoleShow().getSpecies_id())) {
	        		ZhuFrame.getZhuJpanel().addPrompt2("结婚法不允许同性登记");
	        		return;
				}
	        	SendMessageUntil.toServer(Agreement.marryAgreement(vs[1]));
	    	}
		}		
	}

	/**
	 * 我要离婚
	 */
	public void UnMarry() {
		// 判断是否已经结婚
		if (RoleData.getRoleData().getLoginResult().getMarryObject() != null) {
			doUnmarry();
		} else {
			FrameMessageChangeJpanel.addtext(6, "您还没有对象！！", null, null);
			// 头上弹框
			ImageMixDeal.userimg.Dialogue("您还没有对象！！");
		}
	}

	/**
	 * 离婚方法发送服务器信息
	 */
	public void doUnmarry() {

		if (ImageMixDeal.userimg.getRoleShow().getTeamInfo() != null) {
			// 结婚的对象
			String marrOtherName = null;
			// 发送结婚对象给服务器
			String mes = null;
			String[] mesMarrName = ImageMixDeal.userimg.getRoleShow().getTeamInfo().split("\\|");
			if (mesMarrName.length == 2) {
				// 判断组队的另一个是不是你的对象
				if (ImageMixDeal.userimg.getRoleShow().getRolename().equals(mesMarrName[0])) {
					// 组队的对象不是自己的结婚对象
					if (mesMarrName[1].equals(RoleData.getRoleData().getLoginResult().getMarryObject())) {
						// 组队的对象是自己的结婚对象
						mes = Agreement.getAgreement().unMarry(ImageMixDeal.Playerimgmap.get(mesMarrName[1]).getRoleShow().getRole_id() + "");
					} else {
						FrameMessageChangeJpanel.addtext(6, "离婚应该跟你对象一起来！！", null, null);
						// 头上弹框
						ImageMixDeal.userimg.Dialogue("离婚应该跟你对象一起来！！");
					}
				} else {
					// 组队的对象不是自己的结婚对象
					if (mesMarrName[0].equals(RoleData.getRoleData().getLoginResult().getMarryObject())) {
						mes = Agreement.getAgreement().unMarry(ImageMixDeal.Playerimgmap.get(mesMarrName[0]).getRoleShow().getRole_id() + "");
					} else {
						FrameMessageChangeJpanel.addtext(6, "离婚应该跟你对象一起来！！", null, null);
						// 头上弹框
						ImageMixDeal.userimg.Dialogue("离婚应该跟你对象一起来！！");
					}
				}
				// 发送给服务器
				SendMessageUntil.toServer(mes);
			} else {
				if (mesMarrName.length > 2) {
					FrameMessageChangeJpanel.addtext(6, "离婚就你跟你对象的事，多带的人算什么！！", null, null);
					// 头上弹框
					ImageMixDeal.userimg.Dialogue("离婚就你跟你对象的事，多带的人算什么！！");
					return;
				}
				// 跳转到强制离婚选择界面
				NPCJfram.getNpcJfram().getNpcjpanel().compulsoryDivorce();
			}
		} else {
			// 跳转到强制离婚选择界面
			NPCJfram.getNpcJfram().getNpcjpanel().compulsoryDivorce();
		}
	}
}
